package monster.comm.util;


import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import monster.comm.log.ILog;
import monster.comm.log.LogService;





/**
 * 
 * @author jzk
 *应用服务器启动的时候产生的监听行为
 *主要用户系统级别的数据初始化
 *
 */
public class Server_listener implements ServletContextListener {
	private static ILog log = LogService.getLog(Server_listener.class);
	/**
	 * 启动监听
	 */
	public void contextInitialized(ServletContextEvent sce){
		boolean b=true;
		log.info("===============服务器监听器启动====================");
		javax.servlet.ServletContext ctx=sce.getServletContext();
		//设置mybati使用日志类
		org.apache.ibatis.logging.LogFactory.useLog4JLogging();
		//注入ServletContext
		if(ctx==null){
			b=false;
			log.error("=============== ServletContext为null====================");
		}
		else{
			 SpringApplicationContextFactory.setApplicationContext(ctx);
			 log.info("=============== ServletContext注入====================");
			
		}
		
//		//数据字典初始化
//		try{
//			
//			DictManager.getInstance().initTblDict(ctx);//初始化列表显示数据字典
//			log.info("---数据字典数据初始化成功-----");
//			
//		}
//		catch(Exception e)
//		{
//			b=false;
//			 log.error("---数据字典数据初始化失败-----",e);
//		}
//		
//		//学校配置信息初始化
//		try{
//			
//			
//			Sch_infoFacory.getInstance();//初始化学校配置信息
//			log.info("---配置信息初始化成功-----");
//		}
//		catch(Exception e)
//		{
//			b=false;
//			 log.error("---配置信息初始化失败-----",e);
//		}
//		
//		//有些异常回导致session失效后无法更新,如服务器突然关闭,这里情况所有在线的用户
//		try{
//			Users_logininfoService service = (Users_logininfoService)SpringApplicationContextFactory.getService("users_LogininfoService");
//			service.updateOnline(monster.comm.util.Tool.getDateTime("-"));
//			log.info("---注销所有在线用户成功-----");
//		}
//		catch(Exception e)
//		{
//			b=false;
//			 log.error("---注销所有在线用户失败-----",e);
//		} 
//		
//		
//		if(b==true)
//			log.info("===============系统监听器启动成功==================");
//		else
//			log.info("===============系统监听器启动失败==================");
		log.info("===============系统监听器启动成功==================");
	}

	public void contextDestroyed(ServletContextEvent sce){
		log.info("系统关闭");
	}
}
